package com.fileupload.upload.log;

import com.fileupload.common.Result;
import com.fileupload.config.MonitorConfig;
import com.fileupload.config.ServerConfig;
import com.fileupload.model.entity.FileUploadLog;
import java.io.File;
import java.util.List;

/**
 * 文件上传日志服务接口
 */
public interface FileUploadLogService {
    
    /**
     * 记录文件上传结果
     * 
     * @param file 上传的文件
     * @param monitorConfig 监控配置
     * @param serverConfig 服务器配置
     * @param startTime 上传开始时间
     * @param endTime 上传结束时间
     * @param success 是否上传成功
     * @param errorMessage 错误信息（如果失败）
     */
    void logUploadResult(File file, MonitorConfig monitorConfig, ServerConfig serverConfig, 
                        long startTime, long endTime, boolean success, String errorMessage);
    
    /**
     * 获取设备标识
     * 
     * @return 设备标识
     */
    String getDeviceIdentifier();
    
    /**
     * 初始化数据库表
     */
    void initDatabaseTable();
    
    /**
     * 获取日志列表
     * @param page 页码
     * @param size 每页数量
     * @return 日志列表结果
     */
    Result<List<FileUploadLog>> getLogList(Integer page, Integer size);
    
    /**
     * 获取日志详情
     * @param id 日志ID
     * @return 日志详情结果
     */
    Result<FileUploadLog> getLogDetail(Long id);
}